home *** CD-ROM | disk | FTP | other *** search
- Subject: Aegis Frequently Asked Questions (FAQ)
- From: Peter Miller <pmiller@agso.gov.au>
- Newsgroups: comp.software-eng,comp.software.config-mgmt,comp.software.testing,comp.sources.d,alt.sources.d
-
- Submitted-by: Peter Miller <pmiller@agso.gov.au>
- Archive-name: aegis.2.3/FAQ
-
- This message contains answers to a number of frequently asked ques-
- tions about Aegis. If you don't know what Aegis is, read on.
-
- Suggestions for additions or improvements to this FAQ are most wel-
- come.
-
- Contents
- 1. What is Aegis?
- 1.1. What operating systems are supported?
- 1.2. Where can I get Aegis?
- 1.3. Is Aegis actively being maintained?
- 1.4. Is there an Aegis mailing list?
- 1.5. How does Aegis compare with program X?
- 2. Configuration and initial build problems
- 2.1. Changing Makefile and common/congig.h
- 2.2. RCS
- 2.3. SCCS
- 3. Testing
- 3.1. Can I use something besides a shell script?
- 3.2. Testing curses programs
- 3.3. Testing X11 programs
- 3.3.1. replayXt
- 3.4. Testing embedded systems
- 4. Miscellaneous
- 4.1. How do you pronounce ``Aegis''?
- 4.2. How do I automate the integration queue?
- 4.3. How do I enforce coding standards?
- 4.4. How do I get dates printed before and after build commands?
- 4.5. How do I stop Aegis automatically merging?
- 4.6. Do I have to type all the config examples in the User Guide?
- 4.7. Is there a way to recreate a previous baseline?
-
- ----------------------------------------------------------------------
-
- Subject: 1. What is Aegis?
-
- Aegis is a transaction-based software configuration management system.
- It provides a framework within which a team of developers may work on
- many changes to a program independently, and Aegis coordinates inte-
- grating these changes back into the master source of the program, with
- as little disruption as possible.
-
- For a more complete description, see the README file or the User
- Guide. Both are available from the anonymous FTP site (see below).
-
- ------------------------------
-
- Subject: 1.1. What operating systems are supported?
-
- Aegis will run on almost any version of UNIX. The distribution con-
- tains a configure script generate by GNU autoconf to adapt to your
- site.
-
- There is no Aegis port to OS/2, MS-DOS or VMS. The author has no ex-
- pertise is these operating systems. If you do have such expertise,
- you are welcome to donate a port of Aegis, and I will try to include
- your work in the next release.
-
- ------------------------------
-
- Subject: 1.2. Where can I get Aegis?
-
- Aegis is available by anonymous FTP from
- Host: ftp.nau.edu
- Dir: /pub/Aegis
- File: aegis.2.3.README
- File: aegis.2.3.tar.gz # the complete source
- File: aegis.2.3.ps.gz # the User Guide
- File: aegis.2.3.faq # this FAQ list
-
- ------------------------------
-
- Subject: 1.3. Is Aegis actively being maintained?
-
- Yes, Aegis is actively being maintained by the author. You can con-
- tact him by email
- Peter Miller <pmiller@agso.gov.au>
-
- ------------------------------
-
- Subject: 1.4. Is there an Aegis mailing list?
-
- Yes. Discussion may include, but is not limited to: bugs, enhance-
- ments, and applications. The list is not moderated.
-
- The address of the mailing list is
- aegis-users@agso.gov.au
-
- DO NOT send email to the list if you wish to subscribe.
-
- To subscribe to this mailing list, send an email message to majordo-
- mo@agso.gov.au with a message body containing the single line
- subscribe aegis-users
- Please note that agso.gov.au is an Internet site, so if you have an
- address which is not readily derived from your mail headers (majordomo
- is only a Perl program, after all) you will need to use a message of
- the form:
- subscribe aegis-users address
- where address is an email address which makes sense from an Internet
- site.
-
- The software which handles this mailing list CANNOT send you a copy of
- Aegis. Please use FTP or ftp-by-email, instead.
-
- ------------------------------
-
- Subject: 1.5. How does Aegis compare with program X?
-
- For all X, ``The author has no experience with X. If you wish to con-
- tribute a comparison between Aegis and X, it will be considered for
- addition here.''
-
- ------------------------------
-
- Subject: 2. Configuration and initial build problems
-
- Aegis is accompanied by a set of regression tests, and the BUILDING
- instructions included in the distribution detail how to run these
- tests.
-
- ------------------------------
-
- Subject: 2.1. Changing Makefile and common/congig.h
-
- It is a Bad Idea to change the Makefile or the common/config file by
- hand. This is because much of the work done by the configure script
- in inter-related.
-
- In particular, if you change the C compiler (CC) you absolutely must
- do this with the involvement of the configure script.
-
- ------------------------------
-
- Subject: 2.2. RCS
-
- The tests distributed with Aegis use RCS as their history tool. It is
- important that you use version 5.6 or later.
-
- There seems to be a problem with the version of RCS distributed with
- HP/UX, even though it claims to be RCS-5.6.0.1. You will need to get
- the latest GNU RCS if you are on a HP box.
-
- ------------------------------
-
- Subject: 2.3. SCCS
-
- The tests do not automatically detect that you have SCCS. You will
- need to go out and grab RCS even if you already have SCCS installed at
- your site.
-
- ------------------------------
-
- Subject: 3. Testing
-
- One of the things many sites like about Aegis, is that it provides
- mandatory testing. This enforcement of testing is optional, and is
- configurable pre-project.
-
- Please note that even if Aegis' testing framework is not useful to
- your project, the other aspects of Aegis' process still are (e.g. con-
- current development, mandatory reviews, etc.).
-
- ------------------------------
-
- Subject: 3.1. Can I use something besides a shell script?
-
- Yes, the ``test_command'' field of the project config file may be set
- to whatever command you like, see aepconf(5) for more information.
-
- A shell script is the default, because you can run anything out of the
- shell script. In particular, you can set up a temporary directory
- within which to run the tests. If you ``cd'' into this temporary di-
- rectory when running tests, cleanup, no matter what the fallout, even
- a core dump, is thus a simple matter of ``rm -rf'' of the temporary
- directory.
-
- ------------------------------
-
- Subject: 3.2. Testing curses programs
-
- I don't have a curses program tester, nor do I know of one. It seems
- to me that the ``screen'' program contains all the necessary elements,
- however additional code would be required to make it a suitable test
- harness.
-
- If anyone has found suitable curses testers, even commercial ones, I
- would be happy to list (FTP) locations here.
-
- ------------------------------
-
- Subject: 3.3. Testing X11 programs
-
- I don't have an X11 program tester, however several commercial ones
- seem to be advertised heavily.
-
- If anyone has found suitable X11 testers, even commercial ones, I
- would be happy to list additional (FTP) locations here.
-
- ------------------------------
-
- Subject: 3.3.1. replayXt
-
- ReplayXt is a library that allows Intrinsics (or Xt) based application
- to be executed from a script file. In particular, applications based
- on the Athena and the Motif toolkits can be played. The author is Jan
- Newmarch <jan@pandonia.canberra.edu.au>
-
- replayXt is available by anonymous FTP from
- Host: ftp.x.org
- Dir: /contrib/devel_tools
- File: replayXt.README
- File: replayXt.1.1.tar.z
-
- The author has not personally used this system, and so can make no
- comment on it. This entry originated from Simon Pickup <si-
- mon@adacel.com.au>
-
- ------------------------------
-
- Subject: 3.4. Testing embedded systems
-
- Yes, embedded system can be developed with Aegis, Naturally, you will
- need a suitable cross compiler.
-
- To test embedded software, you will need suitable testing hardware:
-
- 1. you will need to be able to (automatically) download the software
- into suitable hardware - probably with RAM emulating the ROM of the
- distributed product.
-
- 2. you will need to be able to simulate the various inputs and capture
- the various outputs, if you don't want to do manual testing.
-
- 3. you will probably have to write the testing program yourself, to
- allow scripting the inputs and outputs.
-
- 4. The gotcha is that in diverting input and output, you will need to
- manually test the device drivers, because the tests will probably not
- exercise them.
-
- The author has worked in an environment like this, and Aegis is defi-
- nitely intended to be useful in this situation.
-
- ------------------------------
-
- Subject: 4. Miscellaneous
-
- This section contains a whole bunch of things which do not yet belong
- anywhere else.
-
- ------------------------------
-
- Subject: 4.1. How do you pronounce ``Aegis''?
-
- There are many alternatives for pronouncing this word, and all focus
- on the myriad of sounds available for the "ae" vowel. Alternatives
- include: maestro, aerial, encyclopaedia, etc. The author has chosen
- the pronunciation found in the majority of dictionaries: ee.j.iz.
- That is "ee" as in "tree", a "j" as in "job", and "iz" as in "prism".
-
- ------------------------------
-
- Subject: 4.2. How do I automate the integration queue?
-
- There is a shell script in the aegis library directory (usually
- /usr/local/lib/aegis/integrate_q.sh) which can be run from cron(1)
- daily, or whatever. This shell script is a good starting point for
- customising automatic integrations.
-
- Please note that the integration phase also serves to answer the ques-
- tion ``who reviews the reviewers?'' Monitoring review quality is es-
- sential to maintain product quality.
-
- ------------------------------
-
- Subject: 4.3. How do I enforce coding standards?
-
- The ``diff_command'' field of the project config file need not only
- difference the file, it can also be overloaded to do other things. If
- the difference command files for any source file, the change may not
- leave the being developed state.
-
- For example, if you wanted to check that line lengths were always 80
- characters or less, you could run the hypothetical ``cklinlen'' com-
- mand at diff time, using
- diff_command = "cklinlen $in && fcomp -w -s $orig $in -o $out";
- Checking other coding standards are also possible using the same basic
- method.
-
- ------------------------------
-
- Subject: 4.4. How do I get dates printed before and after build com-
- mands?
-
- Just as the diff_command file of the project config file can be ex-
- tended, so can the build_command field.
- build_command = "set +e; date; cook ...; x=$?; date; exit $x";
- You need to be careful about the -e flag, because Aegis invokes the
- shell to run the commands with the -e option, to abort after the first
- error.
-
- ------------------------------
-
- Subject: 4.5. How do I stop Aegis automatically merging?
-
- The merging behaviour is controlled by the ``diff_preference'' field
- of the user config file. See aeuconf(5) for more information. There
- are also three command line options to the aed(1) command which can
- override the preferences, see aed(1) for more information.
-
- To stop the automatic merging, add the line
- diff_preference = no_merge;
- to the .aegisrc file in your more directory. To specifically perform
- a merge after that, you will need to use the ``aed -merge_only'' com-
- mand.
-
- ------------------------------
-
- Subject: 4.6. Do I have to type all the config examples in the User
- Guide?
-
- No, you do not. The lib/config.example directory contains a number of
- files with the config command from the User Guide ready for inserying
- into your project config file.
-
- ------------------------------
-
- Subject: 4.7. Is there a way to recreate a previous baseline?
-
- For example, let's say we have shipped one version to a customer and
- since then made 30 changes to the baseline. When the customer calls
- in with a failure report that we can't reproduce, how can I easily re-
- build the baseline from 30 changes ago to help track down the error?
-
- Yes, it is possible to reacreate a previous baseline. You need to
- follow these steps:
-
- 1. Determine which delta was shipped to the customer. This is easiest
- if you embed the version supplied by Aegis into your executables at
- build time.
-
- 2. Create a change a change (you want to fix the bug, right?) and
- start developing it.
-
- 3. Copy all of the project files into the change, using the delta num-
- ber determined in step 1. Use these commands:
- aecd
- aecp . -delta N
- where N is the delta number from the first step. Files created since
- the delta will be copied into you chage as empty files, leave them
- alone for a while.
-
- Note that you need Aegis 2.3 for directory copying to work correctly.
- Eariler versions will need to use
- aecd
- aecp `aegis -list project_files -terse` -delta N
- Note the backward quotes. The above can be abbreviated, its just long
- so you can see what it is doing.
-
- 4. Build the change as normal. This will completely rebuild the ver-
- sion sent to the customer. Note that a number of things are beyonf
- Aegis' scope, like operating system updates and compiler updates.
- These can have an effect in accurately reproducing what was sent to
- the customer.
-
- 5. Find the bug and fix it, as you would normally do.
-
- 5. Merge the change. This will bring the files up to the most recent
- version, and merge the bug fix with the current version.
-
- 6. You can no uncopy all of the files which are unchanged. Aegis pro-
- vides a fast way to do this
- aecpu -unchanged
- This command behaves like aecpu, but it goes hunting for files which
- are the same between the baseline and the development directory. Note
- that you must do this step after the merge.
-
- ------------------------------
-
- End of aegis.2.3.faq Digest
- ***************************
-